如同「決定係數篇」所介紹,R^2的數字越趨近於1,模型能夠解釋的能力越強,那麼我們就是追尋更好的R^2數字。
除了嘗試挖掘更多派得上用場的參數,總結我們這段時間摸索下來,認為值得一提的兩個經驗,分作兩篇說明。
首先考慮資料的偏頗,如果只收集單一一天客戶的資料,會不會這一天購物狀況剛好比較有起伏,其實距離平均值有點落差?
那麼多拉幾天的時間分別收集可能有幫助,甚至可以的話,收集資料的時間拉得越長,應該越貼近平均狀況。
另一方面,如果資料筆數太少,會不會對結果有顯著影響呢?Vertex要求資料集至少需要有1000筆資料,但我們無法確認這1000筆資料是否足夠。
第一次準備的資料筆數剛好1000筆整整,R^2是0.22。
第二次拉長抓取資料時間的週期,2000筆,R^2是0.2。
第三次藉由rolling window的方式增加資料量,湊到10000筆,R^2是0.21。
以上的結論是否代表,1000筆資料就已經足夠了呢?其實不一定,R^2是一個糟糕的數字,會不會是已經太糟糕了,所以筆數多寡在這個模型的訓練已經不是影響的關鍵,也許在R^2不錯的時候,有可能有顯著的影響也不一定。
重點是為了增加筆數,我們學會rolling window
的方法,這個方法十分實用,某一種程度可以不需擔心資料筆數的問題,不過無法增加變異性更多的資料就是了。
所謂rolling window
,簡單來說就是部分重疊地使用舊資料,加上部分新的資料,湊成新的資料。舉例而言,有個陣列如下:
[1,2,3,4,5,6,7,8,9,10]
如果我們是兩兩取一組,間隔地取,只能拿到5組
[1,2]
[3,4]
[5,6]
[7,8]
[9,10]
但如說是重疊地取,可以取得更多資料,如下就有9組的資料
[1,2]
[2,3]
[3,4]
[4,5]
[5,6]
[6,7]
[7,8]
[8,9]
[9,10]
而在每個數字都代表著離散的資料,而且不破壞其次序,這樣的使用方式合理。
順便一提,在股票市場用的移動平均線
,就是使用rolling window
。